#include "mainwindow.h"
#include <QPainter>
#include <cmath>
#include <QHBoxLayout>
#include "DrawArea.h"

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent), pendulum(1.0, 0.1, 1.0, 9.81) {
    setMinimumSize(800, 600); // 设置窗口最小大小
    timer = new QTimer(this);
    connect(timer, SIGNAL(timeout()), this, SLOT(updatePendulum()));
    timer->start(10); // 10毫秒更新一次

    // 创建中央小部件和布局
    QWidget *centralWidget = new QWidget(this);
    setCentralWidget(centralWidget);
    QHBoxLayout *layout = new QHBoxLayout(centralWidget);
    layout->setContentsMargins(0, 0, 0, 0); // 去除布局的边距

    // 创建绘图区域
    DrawArea *drawArea = new DrawArea(this);
    layout->addWidget(drawArea);
    drawArea->setPendulum(&pendulum);
}

MainWindow::~MainWindow() {
    delete timer;
}

void MainWindow::updatePendulum() {
    pendulum.ControlLoop(); // 更新倒立摆状态
    centralWidget()->update(); // 重新绘制绘图区域
}

void MainWindow::paintEvent(QPaintEvent *event) {
    // 在这里绘制其他界面元素
}
